package com.ml.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

/**
 * <p>
 * 
 * </p>
 *
 * @author virgli
 * @since 2020-08-27
 */
public class ExSymbol extends Model<ExSymbol> {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 交易对中的基础币种
     */
    private String baseCurrency;

    /**
     * 交易对中的报价币种
     */
    private String quoteCurrency;

    /**
     * 交易对报价的精度（小数点后位数）
     */
    private Integer pricePrecision;

    /**
     * 交易对基础币种计数精度（小数点后位数）
     */
    private Integer numPrecision;

    /**
     * 交易对交易金额的精度（小数点后位数）
     */
    private Integer amountPrecision;

    /**
     * 交易对
     */
    private String symbol;

    /**
     * 交易对状态（见数据字典）
     */
    private Integer state;

    /**
     * 所属交易区（见数据字典）
     */
    private Integer symbolPartition;

    /**
     * 交易对限价单最小下单量 ，以基础币种为单位
     */
    private BigDecimal limitOrderMinNum;

    /**
     * 交易对限价单最大下单量 ，以基础币种为单位
     */
    private BigDecimal limitOrderMaxNum;

    /**
     * 交易对市价卖单最小下单量，以基础币种为单位
     */
    private BigDecimal sellMarketMinOrderNum;

    /**
     * 交易对市价卖单最大下单量，以基础币种为单位
     */
    private BigDecimal sellMarketMaxOrderNum;

    /**
     * 交易对限价单和市价买单最小下单金额， 以计价币种为单位
     */
    private BigDecimal orderMinAmount;

    /**
     * 交易对限价单和市价买单最大下单金额， 以计价币种为单位
     */
    private BigDecimal orderMaxAmount;

    /**
     * 吃单方费率类型（见数据字典）
     */
    private Integer takerFeeType;

    /**
     * 吃单方费率
     */
    private BigDecimal takerFee;

    /**
     * 挂单方费率类型（见数据字典）
     */
    private Integer makerFeeType;

    /**
     * 挂单费率
     */
    private BigDecimal makerFee;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    private LocalDateTime editTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getBaseCurrency() {
        return baseCurrency;
    }

    public void setBaseCurrency(String baseCurrency) {
        this.baseCurrency = baseCurrency;
    }
    public String getQuoteCurrency() {
        return quoteCurrency;
    }

    public void setQuoteCurrency(String quoteCurrency) {
        this.quoteCurrency = quoteCurrency;
    }
    public Integer getPricePrecision() {
        return pricePrecision;
    }

    public void setPricePrecision(Integer pricePrecision) {
        this.pricePrecision = pricePrecision;
    }
    public Integer getNumPrecision() {
        return numPrecision;
    }

    public void setNumPrecision(Integer numPrecision) {
        this.numPrecision = numPrecision;
    }
    public Integer getAmountPrecision() {
        return amountPrecision;
    }

    public void setAmountPrecision(Integer amountPrecision) {
        this.amountPrecision = amountPrecision;
    }
    public String getSymbol() {
        return symbol;
    }

    public void setSymbol(String symbol) {
        this.symbol = symbol;
    }
    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }
    public Integer getSymbolPartition() {
        return symbolPartition;
    }

    public void setSymbolPartition(Integer symbolPartition) {
        this.symbolPartition = symbolPartition;
    }
    public BigDecimal getLimitOrderMinNum() {
        return limitOrderMinNum;
    }

    public void setLimitOrderMinNum(BigDecimal limitOrderMinNum) {
        this.limitOrderMinNum = limitOrderMinNum;
    }
    public BigDecimal getLimitOrderMaxNum() {
        return limitOrderMaxNum;
    }

    public void setLimitOrderMaxNum(BigDecimal limitOrderMaxNum) {
        this.limitOrderMaxNum = limitOrderMaxNum;
    }
    public BigDecimal getSellMarketMinOrderNum() {
        return sellMarketMinOrderNum;
    }

    public void setSellMarketMinOrderNum(BigDecimal sellMarketMinOrderNum) {
        this.sellMarketMinOrderNum = sellMarketMinOrderNum;
    }
    public BigDecimal getSellMarketMaxOrderNum() {
        return sellMarketMaxOrderNum;
    }

    public void setSellMarketMaxOrderNum(BigDecimal sellMarketMaxOrderNum) {
        this.sellMarketMaxOrderNum = sellMarketMaxOrderNum;
    }
    public BigDecimal getOrderMinAmount() {
        return orderMinAmount;
    }

    public void setOrderMinAmount(BigDecimal orderMinAmount) {
        this.orderMinAmount = orderMinAmount;
    }
    public BigDecimal getOrderMaxAmount() {
        return orderMaxAmount;
    }

    public void setOrderMaxAmount(BigDecimal orderMaxAmount) {
        this.orderMaxAmount = orderMaxAmount;
    }
    public Integer getTakerFeeType() {
        return takerFeeType;
    }

    public void setTakerFeeType(Integer takerFeeType) {
        this.takerFeeType = takerFeeType;
    }
    public BigDecimal getTakerFee() {
        return takerFee;
    }

    public void setTakerFee(BigDecimal takerFee) {
        this.takerFee = takerFee;
    }
    public Integer getMakerFeeType() {
        return makerFeeType;
    }

    public void setMakerFeeType(Integer makerFeeType) {
        this.makerFeeType = makerFeeType;
    }
    public BigDecimal getMakerFee() {
        return makerFee;
    }

    public void setMakerFee(BigDecimal makerFee) {
        this.makerFee = makerFee;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public LocalDateTime getEditTime() {
        return editTime;
    }

    public void setEditTime(LocalDateTime editTime) {
        this.editTime = editTime;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "ExSymbol{" +
        "id=" + id +
        ", baseCurrency=" + baseCurrency +
        ", quoteCurrency=" + quoteCurrency +
        ", pricePrecision=" + pricePrecision +
        ", numPrecision=" + numPrecision +
        ", amountPrecision=" + amountPrecision +
        ", symbol=" + symbol +
        ", state=" + state +
        ", symbolPartition=" + symbolPartition +
        ", limitOrderMinNum=" + limitOrderMinNum +
        ", limitOrderMaxNum=" + limitOrderMaxNum +
        ", sellMarketMinOrderNum=" + sellMarketMinOrderNum +
        ", sellMarketMaxOrderNum=" + sellMarketMaxOrderNum +
        ", orderMinAmount=" + orderMinAmount +
        ", orderMaxAmount=" + orderMaxAmount +
        ", takerFeeType=" + takerFeeType +
        ", takerFee=" + takerFee +
        ", makerFeeType=" + makerFeeType +
        ", makerFee=" + makerFee +
        ", createTime=" + createTime +
        ", editTime=" + editTime +
        "}";
    }
}
